package com.yaoq.proxy.dynamic;

/**
 * @ClassName Client
 * @Description 动态代理
 * 代理对象不需要实现接口，但目标对象要实现接口
 * 代理对象的生成是利用JDK的API，动态的在内存中构建代理对象
 * 动态代理也叫JDK代理，接口代理
 * @Author yaoqiang
 * @Date 2020/8/31 17:41
 * @Version 1.0
 */
public class Client {
    public static void main(String[] args) {
        //创建目标对象
        ITeacherDao target = new TeacherDao();
//给目标对象创建代理对象，可以转成ITeacherDao
        ITeacherDao proxyInstance = (ITeacherDao) new ProxyFactory(target).getProxyInstance();
        System.out.println(proxyInstance.getClass());
        proxyInstance.sayHello("tom");
    }
}
